using System;
using System.Collections.Generic;
using System.Text;

namespace InfiniTec.DirectoryServices
{
    /// <summary>
    /// Specifies the type of an ActiveDirectory principal object.
    /// </summary>
    public enum PrincipalType
    {
        /// <summary>
        /// The item is a domain object
        /// </summary>
        DomainObject = 0,
        /// <summary>
        /// The item is a group object
        /// </summary>
        Group = 0x10000000,
        /// <summary>
        /// The item is a non-security group object
        /// </summary>
        NonSecurityGroup = 0x10000001,
        /// <summary>
        /// The item is an alias
        /// </summary>
        Alias = 0x20000000,
        /// <summary>
        /// The item is a non-security alias
        /// </summary>
        NonSecurityAlias = 0x20000001,
        /// <summary>
        /// The item is a user object
        /// </summary>
        User = 0x30000000,
        /// <summary>
        /// The item is a machine account
        /// </summary>
        MachineAccount = 0x30000001,
        /// <summary>
        /// The item is a trust account
        /// </summary>
        TrustAccount = 0x30000002,
        /// <summary>
        /// The item is a basic group
        /// </summary>
        BasicGroup = 0x40000000,
        /// <summary>
        /// The item is a query group
        /// </summary>
        QueryGroup  = 0x40000001,
    }
}
